<?php
class User {
	var $data        = array();
  	var $permissions = array();

  	function __construct(&$locator) {
		$this->database =& $locator->get('database');
		$this->request  =& $locator->get('request');
		$this->session  =& $locator->get('session');
					
    	if ($this->session->has('usuario')) {
			$this->data = $this->database->getRow("select usuario, clave, nombre  from usuarios where usuario = '" . $this->session->get('usuario') . "'");
			
  		}
  	}		
  	function login($numero_doc, $password) {
		$sql = "select usuario, clave, nombre  from usuarios where usuario = '?' and clave = '?'";
                $user_info = $this->database->getRow($this->database->parse($sql,$numero_doc, $password));

                if ($user_info) {
	  		$this->session->set('usuario', $user_info['usuario']);
	  		$this->data = $user_info;
                        return TRUE;
                } else {
                        return FALSE;
                }
  	}

  	function logout() {
		$this->session->delete('usuario');
	
		$this->data = array();
  	}

  	function isLogged() {
    	return !empty($this->data);
  	}
  
  	function getPERSONA() {
    	return (isset($this->data['usuario']) ? $this->data['usuario'] : NULL);
  	}

  	function getNOMBRE() {
    	return (isset($this->data['nombre']) ? $this->data['nombre']: 'desconocido');
  	}
 	  	function getPERMISOS($persona,$formulario,$permiso)
  	{
		$sql = "select distinct f.formulario, f.permiso from perfiles f inner join grupos g on f.grupo = g.grupo inner join usuariosgrupos p on g.grupo = p.grupo where p.usuario = '?' and f.formulario = '?' and f.permiso ='?'";
    	$permiso = $this->database->getRow($this->database->parse($sql,$persona, $formulario,$permiso));
	  	if ($permiso)
	  	{
	  		return TRUE;
	  	}
	  	else
	  	{
	  		return FALSE;
	  	}
  	}
}
?>
